home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / php / pear / Crypt / XteaTest.php < prev   
PHP Script  |  2004-03-24  |  4KB  |  107 lines

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
  3. //
  4. // +----------------------------------------------------------------------+
  5. // | PHP version 4.0                                                      |
  6. // +----------------------------------------------------------------------+
  7. // | Copyright (c) 2002 The PHP Group                                     |
  8. // +----------------------------------------------------------------------+
  9. // | This source file is subject to version 2.02 of the PHP license,      |
  10. // | that is bundled with this package in the file LICENSE, and is        |
  11. // | available at through the world-wide-web at                           |
  12. // | http://www.php.net/license/2_02.txt.                                 |
  13. // | If you did not receive a copy of the PHP license and are unable to   |
  14. // | obtain it through the world-wide-web, please send a note to          |
  15. // | license@php.net so we can mail you a copy immediately.               |
  16. // +----------------------------------------------------------------------+
  17. // | Authors: Jeroen Derks <jeroen@derks.it>                              |
  18. // +----------------------------------------------------------------------+
  19. //
  20. // $Id: XteaTest.php,v 1.6 2002/09/03 11:04:08 jeroend Exp $
  21.  
  22. /** Xtea class */
  23. require_once( 'Xtea.php' );
  24. /** phpUnit classes */
  25. require_once( 'PHPUnit/PHPUnit.php' );
  26. /** Benchmarking */
  27. require_once( 'Benchmark/Timer.php' );
  28.  
  29. /**
  30.  *  Tester class for Xtea class.
  31.  *
  32.  *  @package    Crypt::Test
  33.  *  @access     public
  34.  *
  35.  *  @version    $Revision: 1.6 $
  36.  *  @since      2002/Aug/28
  37.  *  @author     Jeroen Derks <jeroen@derks.it>
  38.  */
  39. class Crypt_XteaTest extends PHPUnit_TestCase
  40. {
  41.     var $obj;
  42.     var $data;
  43.     var $key;
  44.  
  45.     function Crypt_XteaTest($method) {
  46.         $this->PHPUnit_TestCase($method);
  47.     }
  48.  
  49.     function setUp() {
  50.         $this->obj = new Crypt_Xtea;
  51.         $this->key = '0123456789abcdeffedcba9876543210';
  52.  
  53.         //$this->data = '1'; return;
  54.         //$this->data = '01234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; return;
  55.         $this->data = '';
  56.         for ($i = 0; $i < 256; ++$i) {
  57.             $this->data .= chr($i & 0xff);
  58.         }
  59.         
  60.     }
  61.  
  62.     function testIter() {
  63.         $this->obj->setIter(36);
  64.         $this->assertEquals(36, $this->obj->getIter());
  65.     }
  66.  
  67.     function testCrypt() {
  68.         $timer =& new Benchmark_Timer();
  69.         $timer->start();
  70.         for ( $i = 0; $i < strlen( $this->data ); ++$i )
  71.         {
  72.             $timer->setMarker('data');
  73.             $data = substr( $this->data, 0, $i );
  74.             $timer->setMarker('encryption');
  75.             $encrypted = $this->obj->encrypt($data, $this->key);
  76.             $timer->setMarker('decryption');
  77.             $decrypted = $this->obj->decrypt($encrypted, $this->key);
  78.             $timer->setMarker('assert');
  79.             $this->assertEquals(strlen($data), strlen($decrypted));
  80.             $this->assertEquals($data, $decrypted, "run $i failed: expected '***' (".strlen($data)."), actual '***' (".strlen($decrypted).")" );
  81.         }
  82.         /*
  83.         set_time_limit(99999);
  84.         $timer->setMarker('data');
  85.         $data = '';
  86.         for( $i = 0; $i < 1024 * 1024; ++$i )
  87.             $data .= chr($i & 0xff);
  88.  
  89.         $timer->setMarker('encryption');
  90.         $encrypted = $this->obj->encrypt($data, $this->key);
  91.         $timer->setMarker('decryption');
  92.         $decrypted = $this->obj->decrypt($encrypted, $this->key);
  93.         $this->assertEquals(strlen($data), strlen($decrypted));
  94.         $this->assertEquals($data, $decrypted, "run $i failed: expected '***' (".strlen($data)."), actual '***' (".strlen($decrypted).")" );
  95.         */
  96.  
  97.         // make sure benchmarking output on destruction
  98.         $timer->auto = true;
  99.     }
  100.  
  101.     function tearDown() {
  102.         $this->obj = NULL;
  103.     }
  104. }
  105.  
  106. ?>
  107.